
* * * * * * * * * * * * * * * * *
  History since 2005 (versions 0.1.7 through 0.4.1)
* * * * * * * * * * * * * * * * *

2008
A.P.:
  November 20-23
    Fixed some bugs in the extern inlines (UFix16Div).
  July 20, 22
    Rewrote cpstrcpy.  Assembly version should be slightly faster
      (it should now also clip the passed maximum length correctly).
  June 14
    Revised cs_MacRoman_uppercase (o-slash, delta).
    Made RED30 a masking macro (so it's parameter isn't used twice).
      The older definition now exists as _RED30.
    Spelled "definitive" correctly.
    _machine_partseconds is now defined on all MacOS systems.
    "kCS_device_unit_overflow" is now "kCS_device_unit_oout_of_bounds".
  May -28
    Fixed the xNeg64 macros (carried an extra parameter on non-env68k).
    Revised the EXT_xINT macros and added iext in place of a removed part.
    Added UMulDiv.
2007
  July 12-14
    Fixed a number of problems and added a useless macro.
    getpstr and getcstr are now seperate, and lengths can go over 254 chars.
  June 24
    `byte' is now completely deprecated.  I replaced all source instances with
      UInt8.
    The version number is now 0.4.
    Implemented get_window_frame as a function that returns the window's screen
      bounds, rather than a macro that returns it's internal bounds.
  June 16
    dprintf returns the total length of the out-going string, type `int'.
  May 3-26
    Improvements to the cseries.h header.
  February 5
    More MC68881 and MC68LC040 compatibility stuff (revised the CLibOver junk).
  February 3
    Added LSetInt64.
  January 7
    Revised the debugging macros (parameters are still kept intact for
      backward-compatibility).
2006
  December 30
    Added fnts template (optional) while adding _style_expanded.
    Did a little more work on cs_text; revised (as if that matters right now).
  December 27
    Added Clippedx64Tox32.
  December 24
    Added cseries.r and updated get_new_fontspec and CTab translators.
    Other minor changes (some functions now return a value instead of asserting).
    The version number is now 0.3.
  December 7
    Fixed getcstr (the conditional was "count<ix" rather than "count<=ix").
    The version number is now 0.2.4.
  November 25
    The non-68K isqrt has now been rewritten to match results with __sqrtu32.
    HalfS64 now acts like a division by two (rather than a shift right one).
  November 24
    Got rid of the error the isqrt functions produced in unlikely scenarios
      (very necessary).
    The version number is now 0.2.3.
  November 7-9
    Bug fix for cpstrcpy on the mc68020 side, and a correction for tblcmp.
    Made up for the removed ctype in the MacCarbon library (I was using an old
      ctype.h include for a long time).
    Fixed the ipin macro.
  October 5-20
    Bug fixes, more implementation - tied every loose end as much as I could at
      this point.
    The version number is now 0.2.x.
  August 17-18
    MORE major bug fixes.  The 64 bit bitshift and division inlines should now
      work completely (and they have been tested thoroughly).
  July 29-31
    The `info' approach for storing flags in the color table structure is dead.
    Fixed a linker problem with the VFix16xxx routines by actually implementing
      them in C.
    Fixed the RShiftS64 m68k inline and added __cs_itmpc for ipin.
    Actually implemented the text measurer (now ts_get_textwidth does something).
    Tied some loose ends after enforcing strict prototyping.
  July 18-28
    Updated math.c.  Also implemented LZCount32 in C.
    Added __cs_itmpa and __cs_itmpb for macros that evaluate their expressions
      only once (eg., imin(a,b) won't evaluate `a' or `b' twice).
  July 13
    SWAP() no longer uses `temporary'.  The only one that remains (as far as
      macros that use `temporary') is _xDiv64x32R, and it shouldn't be used
      anyway.
  July 8
    The version number is now 0.1.15 (too many bug fixes).
  July 2-3
    Fixed a bug that completely screwed up atexittoshell, and another that
      screwed up direct_set_colors.  Also updated iocustom.c (the true updated
      version was misplaced).
    Fixed the parameters for direct_set_colors in the include.
  April 2
    Int64Or32 and Int64And32 are now just Int64Or and Int64And.
  March 27
    "machine_ticks()" is now "get_system_tick_count()" (what it should have been
      named all along).
  March 14
    Starting Writing the bulk of the color sorting routine and the inverse table
      building routine.
    Whoa.  Compiling with precompiled headers can be three times faster.
  March 9
    I've decided to scrap the complete bpp formating for text drawing.
      It will be only 1bpp, 8bpp, 15/16bpp, 24bpp and 32bpp.
  March 3
    Fixed bugs and worked on prime factoring for cs_math... it still is yet
      to be implemented for M68K.
  March 2
    Updated the cs_files code.
  Feb 23-24
    Removed the stdio/stdlib prototypes from cseries.h; they should be
      included by including stdio.h and stdlib.h explicitly in the source.
    The version number is now 0.1.14.
    Bug fixes.
  Feb 21
    Second public release of MyCSeries.
  Feb 19
    Because of the enormous amount of work pending, I decided to do away with
      the different glyph bitmap types, making them all 1bpp.
    Removed kDELETE from macintosh_cseries.h.
  Feb 16
    Added `ufixed' and `ufract'.  `fixed' and `fract' are now `sfixed' and
      `sfract' to avoid a namespace conflict with Microsoft Visual C.
      The fixed and fract routines now reflect those names, rather than
      UInt32 and SInt32.
  Feb 14
    Revised cs_byte_swapping.
    The version number is now 0.1.13.
  Feb 13
    Removed `_formatParam'.  It was only available under Symantec C.
  Feb 11
    Writing more code for cs_text fonts, updated the copyright information.
  Feb 7
    To reduce data size (and endian problems for itself!), the byteswapping
      entry type has been made 8 bits.  The original CSeries type was 16 bit
      but my type was 32 bit for alignment.  Packing and minimization is a
      thing I tend to stick to.
    The version number is now 0.1.12 (because byte_swapping.c was added).
  Feb 4
    After adding #-4, The system error codes are now filled from #-1 to #-36.
  Feb 3
    Removed "ts_drawshadow".  It's function was not universal (the results may
      differ from other shadow drawing), and it's unnecessary, just adding more
      code to the library, when there is already too much -- the user could
      implement it easily just by drawing soft dark text beforehand.
    Updated "cseries.a".
  Feb 2
    Implemented the cs_filespec system routines (none of it has been tested).
    Fixed a mistake in the cseries.h header.
  Jan 30-31
    Added more heap management routines like "append_platform_handle" and
      "move_platform_handle_high".
    Did some more cleaning up for the sources.
    The version number is now 0.1.11.
  Jan 27
    Removed the atexit call from macintosh_cseries and made revive_screen_saver
      public so that would work- but it would have to be called manually.
    "CSERIES_VERSION" is now "MYCSERIES_VERSION" -- it's now showing a value
      that isn't completely BCD (intermediate version).
    "cs_screen_" are now "cs_world_".
  Jan 24
    Added SET_RECTANGLE and inlined the macros in cs_graphics.
    sXXXX32 have been removed because they might not ever be used.
    Updated OFFSET_RECTANGLE.
  Jan 21
    Getting a Carbonized version to compile.
    The version number is now 0.1.10 (can't go to 0.2 until the text routines
      have been fully implemented).
    Moved some code from macintosh_cseries.c to the more independant sources.
  Jan 13
    Made sure TRUE and FALSE are not defined by CSeries, and are never returned
      by any of the library functions; wait_for_click_or_keypress must now
      return an `int'.
    Added `native_single_t' and made sure both native_xxx_t are defined.
  Jan 12
    More error handling code, crap and constants.  The color translation routine
      now returns error codes when the color can't be converted or an index in
      the searching routine can't find the appropriate color.
  Jan 11
    Eight depths (two indexed).
    Added PIXEL_xx_xxxx_OFFSET to "cs_graphics.h", and PIXEL24 and PIXEL32 have
      to be divided because they may differ on different platforms.
    NATIVE_TO_LExx is now NATIVE_TO_LEUxx and NATIVE_TO_LESxx.
    Fixed more typos/mistakes.
    Divided the endian NATIVE<->xEx with _SWAP and implemented xEx<->NATIVE.
    The version number is now 0.1.9.
    Added more error constants.
  Jan 10
    Moved the video and graphics specific code to cs_graphics and improved the
      30 bit pixel code.
    Removed "NUMBER_OF_RGB_COLOR_COMPONENTS", this time for good.
    Removed the "ARGB16" structure because it looks like it will never be used.
    Added NATIVE_TO_LExx and NATIVE_TO_BE16 for endian control; the macros are
      already defined (but named differently) in Endian.h as part of QuickTime,
      but they are needed for all platforms capable of compiling with MyCSeries.
    Alphabetic hex digits should be in lowercase.
    Because C++ makes prototyping almost imposible under C, I had to make the
      C++ sources C again.  Tough sh**.
    Created "cs_glyphs.c" as a header (Marathon style) to get this C++ material
      - under C - underway.
  Jan 9
    Added the rest of the 64 basic color entries.
    Fixed more typos.
    ARGB32 is now only one structure.  It was bgra under the Windows platform,
      and generating inconsistency when writing to memory or disk.
  Jan 8
    Removed the second centerRect in adjust_rectangle.
    Finally got version 0.1.8 to compile.
    Replaced all occurences of `mac' with TARGET_OS_MAC; `mac' should only
      be defined by the platform and/or the project using MyCSeries.
    Fixed some typos and touched up the constants a little more (less conflicts).
    Added 16 basic colors, implementation and an inverse table.
  Jan 7
    Implemented the color to pixel routines (with long table searching).
    The version number is now 0.1.8.
  Jan 6
    Because memrem used a faster algorithm, it has been brought back as an
      alternative (but no memrem2, etc.).
    Added tblchr, tblcnt, tblchrbit and tblcntbit.
    "strucmp" has been transformed into "tblcmp" because the C-Type array may
      not always be available (and also because it uses a table comparison).
    Started to elaborate the pixel formats MyCSeries uses.
  Jan 5
    Optimizing the 68K and PPC sides of "cs_strings"...
    Dealing with CType compatibility problems.
    Routines that use tables begin with "tbl"; "memrem" is now "tblcpy".
    Added INTERPOLATE_ARGB32.
    Working on the cs_textspec structure.
    Added the FRACT_ONE, FRACT_ONE_HALF and FRACT_FRACTIONAL_BITS constants.
    Made cs_strings a C++ source to ease the adding of a maximum range to the
      table routines (4.29 billion entries may be a little too much).
  Jan 4 
    "clipstr" is now "cliptext" because it modifies text and relies on the
      current graphics port (and of course because it doesn't use any kind of
      string anymore, just a pointer and a length).
    added "memchrbit" and "memcntbit".
  Jan 3 (Nach b-m-h)
    Some of the debugging prototypes have been renamed.
    I removed the "flags" field from the cs_color_table structure header.  The
      device flag is now the top bit of the color count (bitwise and it off for
      the count).  This was to make the structure a multiple of six bytes in
      size in size starting at the "count" field.  A "reserved" field is added
      for automatic eight byte alignment.
    clip_cstr and clip_pstr have been merged (but still applicable via macros
      and inlines).
